Tap to subscribe to text message alerts

ABSTRACT

A method and a system include receiving an alert enrollment request based on a user selection from a mobile device of a user, the mobile device corresponding to a communication endpoint identifier; generating a user interface element that corresponds to a confirmation of an option to initiating a communication channel; in response to receiving an indication of the confirmation, initiating the communication channel via the mobile device; and transmitting an invitation of a survey communication through the communication channel, the survey communication including an identity verification request associated with a selected phrase to be repeated by the user.

CLAIM OF PRIORITY

This Application is a continuation of U.S. application Ser. No.16/459,562 filed Jul. 1, 2019, which is a continuation of U.S.application Ser. No. 14/303,377, filed Jun. 12, 2014, each of which ishereby incorporated by reference in its entirety.

TECHNICAL FIELD

Example embodiments of the present application generally relate to textmessaging and, more particularly in one embodiment, to a system andmethod for providing text message alerts.

BACKGROUND

Marketplaces can be online and/or real world (e.g., brick and mortar).Online marketplaces can include websites or mobile applications whereusers may buy or sell goods or services (referred to collectively as“items”) from a provider of the online marketplace or other users of theonline marketplace. The goods or services (referred to collectively as“items”) are described in a published listing. Similar to onlinemarketplaces, real-world marketplaces may have websites that allowsusers to view inventory or interact with the real-world marketplace. Anyof these online browsing environments may serve online advertisements tousers during the course of their pursuits of online activities.

One approach for providing consumers with advertisements is by servingemail advertisements. Another form of advertisements is online banneradvertisements that may be displayed on various webpages, includingwebpages on third party websites. Accordingly, consumers can be exposedto a variety of advertisements throughout the consumers' onlineexperience. Given the rapid increase in the number of onlinemarketplaces, customers may become overwhelmed by the number of shoppingoptions and online advertisements. As a result, some marketplaces maynot be able to effectively market to consumers.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings, which are not necessarily drawn to scale, like numeralsmay describe similar components in different views. Like numerals havingdifferent letter or numeric suffixes may represent different instancesof similar components. The drawings illustrate generally, by way ofexample, but not by way of limitation, various embodiments discussed inthe present document.

FIG. 1 is a network diagram depicting a client-server system, withinwhich one example embodiment may be deployed.

FIG. 2 is a block diagram illustrating a mobile device, according to anexample embodiment.

FIG. 3 is a block diagram illustrating an example embodiment of adigital content system including multiple modules forming at least aportion of the client-server system of FIG. 1.

FIGS. 4A-C are interface diagrams illustrating example user interfaceswith multiple display elements delivered to a client device, accordingto example embodiments.

FIG. 5 is a flowchart illustrating an example method of recording anopt-in process request, in accordance with an example embodiment.

FIG. 6 is an interaction diagram illustrating a method of recording anopt-in process request, in accordance with an example embodiment.

FIG. 7 is a flowchart illustrating an example method of linking acommunication endpoint to an opt-in record, in accordance with anexample embodiment.

FIG. 8 is a block diagram illustrating an example data structure of auser account with multiple data fields stored in a databasecommunicatively coupled to the network-based marketplace.

FIG. 9 is a block diagram of machine in the example form of a computersystem within which instructions, for causing the machine to perform anyone or more of the methodologies discussed herein, may be executed.

DETAILED DESCRIPTION

Reference will now be made in detail to specific example embodiments forcarrying out the inventive subject matter. Examples of these specificembodiments are illustrated in the accompanying drawings. It will beunderstood that they are not intended to limit the scope of the claimsto the described embodiments. On the contrary, they are intended tocover alternatives, modifications, and equivalents as may be includedwithin the spirit and scope of the disclosure as defined by the appendedclaims. In the following description, specific details are set forth inorder to provide a thorough understanding of the subject matter.Embodiments may be practiced without some or all of these specificdetails. In addition, well known features may not have been described indetail to avoid unnecessarily obscuring the subject matter.

In accordance with the present disclosure, components, process steps,and/or data structures may be implemented using various types ofoperating systems, programming languages, computing platforms, computerprograms, and/or general purpose machines. In addition, those ofordinary skill in the art will recognize that devices of a less generalpurpose or nature, such as hardwired devices, field programmable gatearrays (FPGAs), application specific integrated circuits (ASICs), or thelike, may also be used without departing from the scope and spirit ofthe concepts disclosed herein. Embodiments may also be tangibly embodiedas a set of computer instructions stored on a computer readable medium,such as a memory device.

Example methods and systems for providing text message alerts to usersare described. In the following description, for purposes ofexplanation, numerous specific details are set forth in order to providea thorough understanding of example embodiments. It will be evident,however, to one skilled in the art that the present invention may bepracticed without these specific details.

Text messaging marketing and alerts may provide an effective way forretailers to communicate to potential customers. However, the opt-inprocess (also referenced herein as “subscription process”) forsubscribing to text message alerts may discourage users from opting into receive text message alerts. For example, one way for customers tosubscribe to text message alerts us to fill out a web-based applicationform. After completing and submitting the application form to theretailer, a text message is sent to the user's mobile phone confirm thatthe user consents for the retailer send text message alerts to themobile phone. As a result, not only does the user have to fill out aweb-based form, but the user must also reply to a text message.

In an example embodiment, a text messaging system provides data fordisplaying a webpage or software application on a user device. Forexample, the user may browse the website of a particular onlineretailer. The webpage may display a button for subscribing to receivetext message alerts. By clicking on the button of the user interface,the user's mobile phone automatically initiates a phone call to the textmessaging system. Because the text messaging system receives a phonecall, the text messaging system may determine the phone number of theuser's mobile phone automatically without further user action. Inparticular, the text messaging system may utilize caller ID technologyto capture the phone number. Accordingly, the text messaging system maycreate an opt-in record corresponding to the identified phone number. Aconfirmation text message may be provided to the user at the completionof creating the opt-in record, wherein the confirmation text messagestates the title of the text message program, the frequency of alerts,whether data rates and/or messaging rates apply, and/or one or morecommands. This way the user may be informed about the subscription.

Additionally or alternatively, while the phone call is still active, thetext messaging system may provide the user a voice message foradditional information regarding the retailer's services, including thetext message service. Additionally, in an example embodiment, the textmessaging system may offer the user a reward for staying on the line andtaking part of a survey. The user may respond to the prompts of thesurvey by using the keypad of the mobile phone or by using voicecommands. Example prompts of the survey may relate to the user's gender,zip code, date of birth, and the like. Since the user is able to speakout the answers the survey, it may be easier to provide answers to thesurvey than it would have been if the user had to type text via aweb-based form and/or text messages. Moreover, an oral survey may beless intimidating than a written survey.

In another aspect of the text messaging system, a program can generatetargeted text message alerts based on the survey as well as browseractivities of the subscribers in order to improve the users' experience.For example, a subscriber can receive text message alerts that aretailored to the interests of the subscriber. For example, the programmay monitor the activities (referred to as “browsing activities” or“online activities” herein) of the subscriber on certain websites and,based on the subscriber's interactions with objects of the website,match particular alerts related to the subscriber's behaviors.Additionally or alternatively, the text messaging system may be alertsbased on the age and/or location of the subscriber, as indicated via thesurvey. As stated, rewards may be triggered by certain events, such asthe subscriber's birthday, for example. Accordingly, the subscriber mayreceive alerts that interest the subscriber and mat receive lessunrelated alerts, thereby increasing the usefulness of the program tothe subscriber. Furthermore, targeted text messages may increase thesubscriber's satisfaction with the program, and thus may result in thesubscriber referring the program to a contact.

By utilizing a phone call to initiate the opt-in process (e.g., incontrast to web-based or text messaging-based communications), the textmessaging system may facilitate additional verification checks toinhibit fraudulent subscriptions. For example, the text messaging systemmay prompt the user for a particular voice response during the phonecall. The text messaging system may prompt for a simple voice responsein a way that is natural conversational, such as stating “yes” to thequestion “would you like to sign up for text message alerts?” As aresult, the verification process may be unobtrusive to the userexperience. In an alternative embodiment, the system may prompt the userto repeat a phrase selected at random. This way, it may be difficult fora software program to exploit the text messaging system.

An online marketplace is a website or mobile application where a usermay buy or sell items from a provider of the online marketplace or otherusers of the online marketplace. The items are described in a publishedlisting. The listing may indicate various properties or characteristicsof the good, service, or proposed transaction such as brand, make,model, year, category, price (e.g., a current high bid, reserve price,or buy it now price), color, size, condition, sale type (e.g., auctionor buy it now), seller, shipping availability and details, location,keywords, categories, or identifiers (e.g., UPC or ISBN code). Theonline marketplace may catalogue items for sale to group listingdescribing similar items together. The catalogue may provide a single,standard description of fungible items and include at least a portion ofthe various properties or characteristics.

In some instances, the online marketplace is associated with areal-world marketplace such as a bricks and mortar store or a chain ofbricks and mortar stores. The real-world marketplace may have the sameinventory, overlapping inventory, or different inventory than itsassociated online marketplace. The real-world marketplace may have awebsite that allows users to view inventory or interact with thereal-world marketplace.

As stated, the online marketplace or the real-world marketplace maycommunicate to its users various alerts, e.g., electronic messages ofitems for sale, discounts or other offers, events, or the like marketingnotifications. The communication may occur via text or multimediamessages (e.g., short message service (SMS), enhanced messaging service(EMS), multimedia messaging service (MMS), or the like, collectivelyreferred to simply as “text messages”) sent or received using a phone(e.g., feature phone or smartphone) of the user. In some instances, theuser (“subscriber”) may sign up with the marketplace to receive textmessages from the marketplace. Text messages may be sent on a regularbasis or on a scheduled basis. In some embodiments, the user may providevarious constraints on text message communications. Moreover, themarketplace can inhibit sending text messages to a user unless the userhas subscribed and provided written authorization to receive textmessages (e.g., via an opt-in process).

FIG. 1 is a network diagram depicting a client-server system 100, withinwhich one example embodiment may be deployed. A networked system 102, inthe example forms a network-based marketplace or publication system,provides server-side functionality, via a network 104 (e.g., theInternet or Wide Area Network (WAN), as well as a telecommunicationsystem such as a public switched telecommunication network (PSTN) or a3rd-generation (3G) wireless communications network) to one or moreclients. FIG. 1 illustrates, for example, a web client 106 (e.g., abrowser), and a programmatic client 108 executing on respective clientmachines/devices 110 and 112.

An Application Program Interface (API) server 114 and a web server 116are coupled to, and provide programmatic and web interfaces respectivelyto, one or more application servers 118. The application servers 118host one or more marketplace applications 120, payment applications 122,and communication applications 123. The application servers 118 are, inturn, shown to be coupled to one or more databases servers 124 thatfacilitate access to one or more databases 126.

The marketplace applications 120 may provide a number of marketplacefunctions and services to users that access the networked system 102.The payment applications 122 may likewise provide a number of paymentservices and functions to users. The payment applications 122 may allowusers to accumulate value (e.g., in a commercial currency, such as theU.S. dollar, or a proprietary currency, such as “points”) in accounts,and then later to redeem the accumulated value for items that are madeavailable via the marketplace applications 120. The communicationapplications 123 may likewise provide a number of communication servicesand functions to users. In one embodiment, the communicationapplications 123 may provide the marketplace applications 120 andpayment applications 122 various text messaging services, such asSMS/MMS communication services. For example, the marketplaceapplications 120 and payment applications 122 may communicate recipientand content information to the communication applications 123, and inresponse, the communication applications 123 can transmit text messagesbased on recipient and content information in accordance with SMS, MMS,or the like communication protocols. Additionally, the communicationapplications 123 may receive text messages based on SMS, MMS, and/or thelike protocols and may communicate recipient and content information tothe marketplace applications 120 and payment applications 122.Accordingly, the marketplace applications 120 and payment applications122 may transmit and receive text messages with users. While themarketplace, payment, and communication applications 120, 122, 123 areshown in FIG. 1 as all forming part of the networked system 102, it willbe appreciated that, in alternative embodiments, each of themarketplace, payment, and communication applications 120, 122, 123 mayform part of respective marketplace, payment, and/or communicationservices that are separate and distinct from the networked system 102.

Further, while the system 100 shown in FIG. 1 employs a client-serverarchitecture, the present invention is of course not limited to such anarchitecture, and could equally well find application in a distributed,or peer-to-peer, architecture system, for example. The variousmarketplace, payment, and communications applications 120, 122, 123could also be implemented as standalone software programs, which do notnecessarily have networking capabilities.

In addition, while the various marketplace, payment, and communicationsapplications 120, 122, 123 have been described above as having separatefunctionalities, in alternative embodiments these functionalities may beperformed by any one or more of the various marketplaces, payment, andcommunications applications 120, 122, 123.

The web client 106 accesses the various marketplace and paymentapplications 120 and 122 via the web interface supported by the webserver 116. Similarly, the programmatic client 108 accesses the variousservices and functions provided by the marketplace and paymentapplications 120 and 122 via the programmatic interface provided by theAPI server 114. The programmatic client 108 may, for example, be aseller application (e.g., the TurboLister application developed by eBayInc., of San Jose, Calif.) to enable sellers to author and managelistings on the networked system 102 in an off-line manner, and toperform batch-mode communications between the programmatic client 108and the networked system 102.

FIG. 1 also illustrates a third party application 128, executing on athird party server machine 130, as having programmatic access to thenetworked system 102 via the programmatic interface provided by the APIserver 114. For example, the third party application 128 may, utilizinginformation retrieved from the networked system 102, support one or morefeatures or functions on a website hosted by the third party. The thirdparty website may, for example, provide one or more promotional,marketplace, or payment functions that are supported by the relevantapplications of the networked system 102.

Example Mobile Device

FIG. 2 is a block diagram illustrating a mobile device 200, according toan example embodiment. The mobile device 200 may include a processor202. The processor 202 may be any of a variety of different types ofcommercially available processors suitable for mobile devices (forexample, an XScale architecture microprocessor, a Microprocessor withoutInterlocked Pipeline Stages (MIPS) architecture processor, or anothertype of processor). A memory 204, such as a random access memory (RAM),a Flash memory, or other type of memory, is typically accessible to theprocessor. The memory 204 may be adapted to store an operating system(OS) 206, as well as application programs 208, such as a mobile locationenabled application that may provide Location Based Services (LBSs) to auser. The processor 202 may be coupled, either directly or viaappropriate intermediary hardware, to a display 210 and to one or moreinput/output (I/O) devices 212, such as a keypad, a touch panel sensor,a microphone, and the like. Similarly, in some embodiments, theprocessor 202 may be coupled to a transceiver 214 that interfaces withan antenna 216. The transceiver 214 may be configured to both transmitand receive cellular network signals, wireless data signals, or othertypes of signals via the antenna 216, depending on the nature of themobile device 200. Further, in some configurations, a GPS receiver 218may also make use of the antenna 216 to receive GPS signals.

FIG. 3 is a block diagram illustrating an example embodiment of a textmessaging system 300 including multiple modules 302-312 forming at leasta portion of the client-server system of FIG. 1. The modules 302-312 ofthe illustrated text messaging system 300 include a telephony interfacemodule(s) 302, an Internet interface module(s) 304, a databasemanagement module(s) 306, an alert generator module(s) 308, averification module(s) 310, and a retargeting module 312. The telephonyinterface module 302 includes a voice sub-module 314 (or “telephonyinterface”) and a text sub-module 316 (or “text message interface”).

In some embodiments, the components of the text messaging system 300 canbe included by the online marketplace application 120 of FIG. 1.However, it will be appreciated that in alternative embodiments, one ormore components of the text messaging system 300 described below can beincluded, additionally or alternatively, by other devices, such as oneor more of the applications 122, 123, the servers 114, 116, 118, 130,the network 104, and/or the client machines 110, 112 of FIG. 1.

The modules 302-312 of the text messaging system 300 may be hosted ondedicated or shared server machines (not shown) that are communicativelycoupled to enable communications between server machines. Each of themodules 302-312 are communicatively coupled (e.g., via appropriateinterfaces) to each other and to various data sources, so as to allowinformation to be passed between the modules 302-312 of the textmessaging system 300 or so as to allow the modules 302-312 to share andaccess common data. The various modules of the text messaging system 300may furthermore access one or more databases 124 via the databaseservers 126.

The text messaging system 300 may provide a number of offers, sales,discounts, listings, and/or pricing notifications whereby a seller maylist (or publish information concerning) items for sale, a buyer canexpress interest in or indicate a desire to purchase such items, and aprice can be set for a transaction pertaining to the items. Inparticular, users can subscribe to receive text message alert of productoffers, sales, discounts, listings, and/or pricing. The subscriptionprocess may include receiving an alert enrollment request from a clientdevice, such as a mobile phone. The alert enrollment request may be inthe form of a phone call to a particular number assigned to the textmessaging system 300. As will be described in greater detail later inconnection with FIG. 4, the alert enrollment request may be initiated bythe user selecting, on the client device, a user interface element thatautomatically dials a number for the text messaging system 300.

In response to receiving the phone call from the client device, the textmessaging system 300 may identify and store the phone number associatedto the client device. Based on this data, an opt-in record may becreated so that the text messaging system 300 may send text messagealerts to the client device as per the terms and conditions the clientagreed to at the time of opt-in.

To this end, the text messaging system 300 is shown to include thetelephony interface module 302, the Internet interface module 304, thedatabase management module 306, the alert generator module 308, theverification module 310, and the retargeting module 312, which togetherwith the communication applications 123 of FIG. 1 can serve to providetext message alerts.

The telephony interface module 302 may be a hardware-implemented modulewhich may transmit and/or receive communications over atelecommunication network. For example, the telephony interface module302 may interface with a PSTN system. As such, telephony interfacemodule 302 may communicate with the PSTN system in accordance with PSTNprotocols. It will be appreciated that the telecommunication networkneed not correspond to a PSTN system. The telecommunication network maybe any communication network suitable for transmitting voice and textcommunications in accordance with the description provided herein.

The telephony interface module 302 may receive and transmit digitaland/or analog communications to mobile and/or fixed telephones. One ormore telephone numbers may be assigned to the telephony interface module302 so that a phone may call the telephony interface module 302.Furthermore, the telephony interface module 302 may receive or sendcaller identification (“caller ID”) data. For example, the telephonynetwork (e.g., PSTN) handling the call may transmit caller ID data tothe telephony interface module 302 when a phone calls the text messagingsystem 300. The text messaging system 300 may be capable of receivingcaller ID data in accordance with Single Data Message Format (SDMF),which may include the caller's telephone number, the date, and time ofthe call. Additionally or alternatively, the text messaging system 300may be capable of receiving caller ID data in accordance with MultipleData Message Format (MDMF), which may include the caller's telephonenumber, the date, and time of the call, and the directory-listed namefor the telephone number. Caller ID data may be used to determine ageographical location of a calling phone.

To support both voice and text messaging, the telephony interface module302 includes the voice sub-module 314 and the text sub-module 316. Thevoice sub-module 314 of the telephony interface module 302 may be ahardware-implemented module which may transmit and/or receive voicecommunications over a telecommunication network. The text sub-module 316of the telephony interface module 302 may be a hardware-implementedmodule which may transmit and/or receive text communications over atelecommunication network. For example, the voice sub-module 314 and/orthe text sub-module 316 may include, or communicate with, gatewaydevices to the telecommunication network.

In operation, the voice sub-module 316 may receive the alert enrollmentrequest from a client device, such as a mobile phone. The alertenrollment request may be received through a first type of communicationchannel, such as a voice call service provided by a telephony network(e.g., PSTN). The alert enrollment request may include a protocolspecific portion that includes a communication endpoint identifierassigned to the client device. For example, the communication endpointidentifier may correspond to a telephone number of the client device. Inparticular, data indicative of the telephone number may be received withthe alert enrollment request as part of the protocol of the PSTN system.For example, the alert enrollment request may include caller lineidentification data received as part of a caller ID communication. Aswill be described in greater detail below, the voice sub-module 314 mayprovide the communication endpoint identifier as an output to thedatabase management module 306 for creating or updating the opt-inrecords.

In operation, the text sub-module 316 may communicate a confirmationmessage to the client device through a second type of communicationchannel, such as a text message service provided by a telephony network.The confirmation message may confirm the successful completion of theopt-in process. The confirmation message may include a name for thealert program, the frequency of text message alerts, information aboutdata rates, and instructions for requesting help and cancellation.

The text sub-module 316 may also communicate text message alerts to theclient device to provide marketing information. The text message alertsmay correspond to text messages containing content provided by the alertgenerator module 308.

The Internet interface module 304 may be a hardware-implemented modulewhich may provide Internet-based communications over a third type ofcommunication channel, such as an Internet protocol service provided bythe Internet. In operation, the Internet interface module 304 mayprovide an alert enrollment invitation to the client device. The alertenrollment invitation may correspond to a webpage or applicationrendered on the client device. The user interface of the alertenrollment invitation may include a selectable control element forcausing the client device to initiate the alert enrollment request. Theselectable control element may correspond to a user interface buttoncontaining data and code that causes the user's mobile phone to dial thephone number associated with the text messaging system 300.

The database management module 306 may be a hardware-implemented modulewhich may maintain user account information, such as opt-in records, tofacilitate one or more subscriptions. The database management module 306may interface with one or more data storage devices, such as thedatabase 126 of FIG. 1, to read or write data.

The database management module 306 can be configured to maintain useraccount data, including adding and storing new user accounts for userswho request to receive text message alerts, as well as storing datarelated to retargeting. For example, in one embodiment the databasemanagement module 306 can receive from a client device user accountinformation (also referred to as “user account data”) for subscribing toreceive text message notifications. The user account information caninclude, among other information, data indicating that there was writtenauthorization from the user for the seller to provide text messagealerts for offers, sales, discounts, listings, pricing, and/or othernotifications. In some embodiments, the text messaging system 300 willnot send text messages to a user unless that user has provided writtenauthorization. Written authorization can include the user initiating aphone call with an electronic device in a manner that indicates theuser's express authorization. It will be appreciated that authorizationcan be expressed in any suitable manner, such as actions that are inaccordance with local laws and policies.

In response to receiving user account information, the databasemanagement module 306 can add or store a user account to a database ofsubscribers. Each user account of the database of subscribers cancorrespond to a user who has subscribed to receive at least some type ofnotification. User accounts can be active or inactive. An active useraccount is an account in which the text messaging system 300 can sendtext message alerts to the corresponding user. An inactive user accountis an account in which the user account includes data of the user butthe text messaging system 300 will not send text message notificationsto the corresponding user. For example, the database management module306 can be set an account as inactive if the account does not have orhas lost authorization. Additionally, the database management module 306can be configured to set an account as inactive if a time period lapses(e.g., if the user has subscribed to receive text message alerts for aset amount of time) of or text message alert limit can become inactive(e.g., if the user has subscribed to receive text message alerts for aset number of alerts).

In some embodiments, the types of offers, sales, discounts, listings,and/or pricing of the notifications can be determined based on datastored in the respective user account. For example, the particularnotifications can be determined (e.g., targeted) based on past userpurchase history, purchased products, purchase times, purchase values,shipping destination, location, and other like considerations indicativeof user preferences or interests. A location (e.g., city and state) ofthe user can be determined based on the caller ID data for the phonemaking a call for an alert enrollment request. In one aspect, amongothers, targeted alerts can increase the likelihood that the user willmake a purchase. In addition, targeted alerts can help create a positiveuser experience and thus increase the number of people whom the user mayrefer.

The database management module 306 may link a communication endpointidentifier to an opt-in record. In one way, the database managementmodule 306 links the identifier by writing the identifier to a datastructure associated with the opt-in record. The linking of thecommunication endpoint identifier may be responsive to the client deviceestablishing the first type of communication channel with the telephonyindication interface module 302. As stated, the telephony interfacemodule 302 may communicate a confirmation message to the client device.Moreover, in accordance with opt-in record, the telephony interfacemodule 302 may communicate alert messages (e.g., text message alerts) tothe client device.

To link the communication endpoint identifier to the opt-in record, thedatabase management module 306 may determine the communication endpointidentifier by accessing caller line identification data of the alertenrollment request. Furthermore, the database management module 306 maydetermine whether the determined communication endpoint identifier islinked to an existing opt-in record. If there is no existing opt-inrecord, the database management module 306 may create a new opt-inrecord. Alternatively, there is an existing opt-in record matching thecommunication endpoint identifier, the database management module 306may update the opt-in record to reflect the data of the alert enrollmentrequest. Additionally or alternatively, the text messaging system 300may transmit a notification message to the client device to inform theuser that there was a request to opt-in to the pre-existing account.

The alert generator module 308 may be a hardware-implemented modulewhich may provide content for generating text message alerts. In oneaspect, the text message alerts may be dynamically generated orpublished based on information from the sellers (e.g., based on theproducts) and the subscribers (e.g., based on personal data). Contentfor the text message alerts may be selected from a database of candidatetext message alerts, which may be updated dynamically by the sellers.Accordingly, the alert generator module 308 can be configured togenerate one or more text messages based on the activities of the usersrelated to subscribing, referrals, and the like activities.

The verification module 310 may be a hardware-implemented module whichmay facilitate verification of data provided from the user device. Forexample, the verification module 310 may determine whether the clientdevice is a mobile phone based on the communication endpointidentification. For example, the verification module 310 may perform acarrier verification process by searching a database of mobile phonesnumbers for a match with the communication endpoint identifier.Alternatively, the verification module 310 may receive the communicationendpoint identifier and provide the identifier to an external server forperforming carrier verification. The verification module 310 may provideto the database management module 306 an indication of the verificationresult. If the verification is successful, the database managementmodule 306 may update or generate an opt-in record associated with thecommunication endpoint identifier. If, however, the verification failed,the verification module 310 may provide to the database managementmodule 306 an indication that verification was not successful.Accordingly, the database management module 306 may not generate orupdate an opt-in record.

The retargeting module 312 may be a hardware implemented module whichmay provide retargeting features. Retargeting can include activitiesassociated with providing targeted advertisements, such as text messagealerts, based on online activities of users. For example, retargetingcan include monitoring a user's browsers activities, analyzing thebrowser activities, selecting an alert based on the analysis, andgenerating a text message alert based on the selected alert.Additionally, retargeting can include utilizing information provided bythe user during a survey portion of the opt-in process. For example, thetext messaging system 300 may offer the user a reward for staying on theinitial phone call to answer one or more questions of the survey. Theseanswers may be used by the retargeting module 312 to select text messagealerts. Accordingly, the retargeting module 212 can be configured toprovide real-time data collection, retargeting logic, dynamicallypublication of text message alerts.

Example User Interface

FIGS. 4A-C are interface diagrams illustrating example user interfaceswith multiple display elements delivered to a client device, accordingto example embodiments. FIGS. 4A-C will be described in the context ofuser interfaces displayed on a mobile phone. However, it will beappreciated that the user interfaces may be displayed on other types ofdevices such as a desktop computer, laptop computer, or mobile computingdevice connected to the network 104.

FIG. 4A is an interface diagram illustrating an example user interface400A of an alert enrollment invitation. As illustrated in FIG. 4A, theuser interface 400A may be presented to a user on the display of aclient device (e.g., client device 110). In this example, the userinterface 400A corresponds to a graphical user interface of a webpage orsoftware application executing on the client device 110 that allows theuser to initiate the opt-in process to receive text message alertnotifications.

In the illustrated example embodiment, the client device 110 includesthe display 210 and the input device 212. In particular, the display 210may correspond to a touch sensitive liquid crystal display (LCD) and theinput device 212 may correspond to a pushbutton. The user may selectelements of the user interface by touching the touch screen 210 and maypush the button 212 to navigate to a previous user interface.

Furthermore, the user interface 400A includes user interface elements401-410. The user interface element 401 may correspond to textdisplaying the name of the retailer. In this example, the retailer'sname is “ACOMPANY.” User interface element 402 may correspond to acontrol element such as a selectable button. The element 402 may includecode and data for initiating a phone call to a specified phone number inresponse to the user selecting the element 402. In the exampleembodiment, the text messaging system 300 may transmit to the userdevice 110 data for the element 402, including a phone number assignedto the text messaging system 300. In operation, the user may tap thedisplay 210 on or about the portion of the screen displaying element402. In response, the client device 110 may initiate a phone call to thetext messaging system 300, as will be described in greater detail inconnection with FIG. 4B.

The element 404 may correspond to text that provides an explanationregarding the process after selecting the element 402. The element 406may be a frame that includes details regarding the subscription. Forexample, in the illustrated example embodiment, the element 406 includestext describing that certain rates may apply, the frequency of messages,and instructions for how to request help or cancellation. The element406 may also include elements 408, 410 which may correspond tohyperlinks. In particular element 408 may be selectable to navigate to auser interface screen displaying the terms and conditions of thesubscription. The element 410 may be selectable to navigate to a userinterface screen displaying privacy policy information.

FIG. 4B is an interface diagram illustrating an example user interface400B of an alert enrollment invitation. As illustrated in FIG. 4B, theuser interface 400B may be presented to a user on the display 210 of aclient device (e.g., client device 110). In this example, the userinterface 400B may correspond to a user interface of an alert enrollmentinvitation configured in response to the user selecting the element 402.In particular, the user interface 400B further includes window 420 thatallows the user to cancel or confirm the phone call. The window 420includes text 422 and buttons 424, 426. The text 422 corresponds to aphone number provided by the text messaging system 300. The button 424,if selected, cancels the phone call. The button 426, if selected,initiates the phone call.

In operation, if the user selects button 426 to confirm the call, theclient device 110 will perform the phone call service. The textmessaging system 300 may answer the phone call and provide to the useran audio or voice message. For example, the illustrated embodiment showsthe message stating, “Hello. Thanks for signing up for ACOMPANY specialoffers, sales and store the event mobile alerts. Shortly, you'll receivea text message to confirm your subscription.” The message may serve tosignal to the user that the phone call was successful, that the textmessaging system 300 successfully answered the phone call, and that thephone call has been completed.

In an example embodiment, the audio message may also invite the userstay on the call to participate in a survey. As an incentive, the audiomessage may offer a reward for the user if the user completes thesurvey. The survey may be conducted in a way that is convenient for theuser. For example, voice recognition may be used so that the user mayverbally answer the questions of the survey instead of typing answers onthe device 110. Furthermore, the survey may include only a few questionsso that the survey does not take up a substantial amount of the user'stime. Information collected from the survey may be used to target orretarget text message alerts to the user.

FIG. 4C is an interface diagram illustrating an example user interface400C of a confirmation text message. As illustrated in FIG. 4C, the userinterface 400C may be rendered on the display 210 of the client device110. In particular, the user interface 400C includes window 430 and thetext message 432. As shown, the confirmation text message 432 includesthe name for the alert program, the frequency of text message alerts,information about data rates, and instructions for requesting help andcancellation. The confirmation text message 432 may be received from thetext message system 300 in response to the phone 110 making the phonecall of FIG. 4B.

It will be understood by a person of ordinary skill that otherembodiments of the user interfaces 400A-C need not include each elementof FIGS. 4A-C and other embodiments may include more or less elements.

Example Subscription Processes

FIG. 5 is a flowchart illustrating an example method 500 of recording anopt-in process request, in accordance with an example embodiment. Inthis example, the method 500 may include operations such as providinguser interface data 504, receiving an alert enrollment request 506,linking a communication endpoint identifier 508, and communicatingcontent 510. The example method 500 will be described, by way ofexplanation, below as being performed by certain modules. It will beappreciated, however, that the operations of the example method 500 canbe performed in any suitable order by any number of the modules shown inFIG. 3.

The method 500 starts at block 502 and proceeds to block 504 forproviding user interface data to a client device. The interface data caninclude a control element to initiate an alert enrollment request. Forexample, the Internet communication interface module 304 may provide tothe mobile phone 110 user interface data for displaying the userinterface 400A of FIG. 4A. The provided data includes the element 402and a phone number associated with the text messaging system 300. Inparticular, the phone number may be associated with a specified textmessage alert program (for example, a text message alert programassociate with a particular retailer). As stated, the element 402 maycorrespond to a selectable button for initiating the alert enrollmentrequest. That is, in response the user selecting or clicking the button402, the mobile phone 110 will initiate a voice call servicecommunication to the text messaging system 300 by calling the phonenumber provided by the Internet interface module 304.

In response to providing the user interface data, the method 500 canproceed from block 504 to block 506 for receiving an alert enrollmentrequest from the client device through a first type of communicationchannel. As stated, the telephony interface module 302 may receive thealert enrollment request, which may correspond to a phone calltransmitted by the client device 110 in response to the user selectingthe element 402 of FIG. 4A.

The alert enrollment request may include a protocol specific portionthat includes a communication endpoint identifier assigned to the clientdevice. For example, as part of the telephony photo call, caller ID datamay be provided to the called device. Accordingly, the telephonyinterface module 302 may receive caller ID data as part of the protocolfor receiving the phone call from the user device 110.

At block 508, the method 500 includes linking the communication endpointidentifier to an opt-in record. For example, the database managementmodule 306 may store the phone number in a data structure associate witha user account. Example user account data structure will be described ingreater detail later in connection with FIG. 8. Furthermore, block 508will be described in greater detail later in connection with FIG. 7.

At block 510, the method 500 can carry out communicating content to theclient device through a second communication channel. The content isaddressed to the client device based on the communication endpointidentifier linked to the opt-in record. In an example, the telephonyinterface module 302 may transmit a text message to the client device110 via a channel using a text message service, such as SMS. The phonenumber to which the text message is sent to can be determined based onthe phone number stored in the corresponding user account, as maintainedby the database management module 306. Content of the text message maycorrespond to a text message alert or a confirmation text of the opt-inprocess. At block 512, the method 500 may end.

FIG. 6 is an interaction diagram illustrating a method 600 of recordingan opt-in process request, in accordance with an example embodiment. Inparticular, FIG. 6 illustrates interactions between various componentsof the network system 100, according to an example embodiment.Specifically, FIG. 6 illustrates interactions of a client device 110 andthe modules 302-310 of FIG. 3.

At operation 602, the Internet interface module 304 transmits a webpageto the client device 110. The webpage may include a user interface, suchas the user interface 400A. In an alternative embodiment, the Internetinterface module 304 provides data for a software application executedby the client device 110. Rendering the user interface 400A, the clientdevice 110 receives user input selecting the element 402. The user inputmay correspond to the user selecting a button (e.g., the element 402).The button includes data and code that, if selected, causes the clientdevice 110 to initiate a telephone call to the text messaging system300, as shown at operation 606. In particular, telephony interfacemodule 302 receives the telephone call over a communications channelusing a voice call service. The telephone call may correspond to analert enrollment request from the client device 110.

In response to answering the telephone call from the user device 110,the telephony interface module 302 may further communicate with theclient device 110. For example, the telephony interface module 302 mayplayback a voice message to the user. The voice message may provideinformation to the user regarding the opt-in process, as described inconnection with FIG. 4B. Additionally and or alternatively, the voicemessage may prompt the user for a particular verbal reply. The promptmay correspond to a question asking the user to confirm the request, thedate, and any other reply suitable to be detected with voicerecognition. The verbal reply received by the telephony interface module302, at operation 610, may be used to confirm that the phone call wasinitiated by a human, rather than automated software attack. Forexample, voice recognition may be used to determine whether the verbalreply matches an expected reply. If the verbal reply matches an expectedreply, then authentication may be successful. At operation 614, thetelephony interface module 302 may provide an indication of the reply tothe database management module 306.

At operation 612, the telephony interface module 302 provides anindication of the request to the database management module 306. Theindication may include caller ID data received by the telephonycommunication interface module 302 as part of the telephony protocol ofreceiving a phone call. At operation 616, the database management module306 checks the opt-in records for a record that matches the telephonenumber of the client device 110. If there is a match, the databasemanagement module 306 may provide a message to the client device 110 toreport that the phone number is already associated with an existentopt-in record. If there is not a match, at operation 618, the databasemanagement module 306 may initiate verification that the phone number ofthe client device 110 is a phone number of a mobile device. At operation620, the verification module 310 may perform a carrier verificationprocess in order to determine whether or not the phone number is a phonenumber of a mobile phone.

At operation 622, the verification module 310 returns the verificationresults to the database management module 306. If the verificationfailed, the method 600 can end. If the verification passed, the databasemanagement module 306 may proceed with the opt-in process at operation623.

At operation 623, the database management module 306 initiates a processof generating a confirmation text message for the client device 110 byinvoking the alert generator module 308. The alert generator module 308generates content for the confirmation text message and, at operation624, provides the content to the telephony interface module 302. Atoperation 626, the telephony interface module 302 prepares and transmitsa text message that contains the content received from the alertgenerator module 308. At operation 628, the database management module306 creates the opt-in record corresponding to the telephone number ofthe client device 110.

At operation 632, the client device 110 and the telephony interfacemodule 302 may take part in a survey. For example, the telephonyinterface module 302 may playback a recording containing one or morequestions or prompts. The client device 110 may transmit user input inresponse to the survey. The user inputs may correspond to verbalresponses or nonverbal user input (such as, pressing the keypad of theclient device 110). At operation 634, the telephony interface module 302may provide the database manager module 306 the user input in order toupdate the account of the client device 110.

At operation 636, the database management module 306 may determine tosend a text message alert to the client device 110. The databasemanagement module 306 may invoke the alert generator module 308 toprovide content associated with a text message alert. At operation 638,the alert generator module 308 may provide selected content to thetelephony interface module 302. The telephony interface module 302 maycause the text message alert to be transmitted to the client device 110.

FIG. 7 is a flowchart illustrating an example method 508 of linking acommunication endpoint to an opt-in record, in accordance with anexample embodiment. In this example, the method 508 may includeoperations such as determining communication endpoint identifier 702,updating the existing opt-in record 706, performing carrier verification708, verifying that the user is human 712, and generating an opt-inrecord 716. The example method 508 will be described, by way ofexplanation, below as being performed by certain modules. It will beappreciated, however, that the operations of the example method 508 canbe performed in any suitable order by any number of the modules shown inFIG. 3.

The method 510 starts at block 701 and proceeds to block 702 fordetermining a communication endpoint identifier of the contentenrollment request. The communication endpoint identifier may correspondto a telephone number, determined by caller identification, of theclient device of the content enrollment request. At block 702, thedatabase management module 306 may determine whether the communicationendpoint identifier was determined at block 702 matches a telephonenumber of an existing opt-in record. If there is an existing opt-inrecord, the method 508 may proceed to block 706 for updating the opt-inrecord, if necessary, and then proceed to block 718 to end. If there isno existing opt-in record, the method 508 may proceed to block 708 forperforming carrier verification on the communication endpoint identifierto determine whether the endpoint identifier corresponds to a mobilecommunication device, such as a mobile phone. For example, the databasemanagement module 306 may invoke the verification module 310 forperforming carrier verification.

If the carrier verification failed, the method 508 may proceed to block718 to end. If the carrier verification passed, the method 508 mayproceed to block 712 for verifying that the user is human. For example,the telephony interface module 302 may prompt the user of the clientdevice to provide specified inputs. The inputs may be verbal utterancesand/or one or more keypad presses to produce a sequence of dial tones.If the user input does not match the expected response, the method 508may proceed to block 718 to end. the user input matches the expectedresponse, the method may proceed to block 716 for generating an opt-inrecord corresponding to the communication endpoint identifier that wasdetermined at block 702. After generating the opt-in record, the method508 may proceed to block 718 to end.

Example Data Structure

FIG. 8 is a block diagram illustrating an example data structure 800 ofa user account with multiple data fields. The data structure 800 may bestored in a database 126 communicatively coupled to the network-basedmarketplace 102. The data structure 800 may be created and/or accessedby the database management module 306 in response to receiving user data(e.g., for opting in), adding a user account, determining a reward,determining text message alerts, tracking, and the like activities ofthe marketplace application 120. For example, user data can be inputtedby a user via the user interfaces 400A-C in order to opt-in or subscribeto receiving text message notifications of product alerts. The userinterfaces 400A-C can transmit the user input to the marketplace andpayment applications 120, 122. Accordingly, the data structure 800 canbe created by the database management module 306 in response toreceiving the user data with the communication interface modules 302,304.

The illustrated data structure 800 of FIG. 8 includes a contact ID datafield 802, a phone number data field 804, a reward data field 806, apurchase data field 808, a personal data field 810, a tracking datafield 812, a call to action identification (CTA ID) data field 814, andthe like data related to a user account. The contact ID 802 cancorrespond to data identifying a user. The phone number data field 804can correspond to a phone number to which text message alerts may besent. The reward data field 806 can correspond to data related to pastrewards or accumulated points. For example, the reward data field 806can store one or more reward totals that have been provided to the user.The reward data field 806 can include data tracking redeemed rewards andor pending rewards (e.g., unused rewards). The purchase data field 808can correspond to data tracking the corresponding users purchasehistory, including information related to past purchases, past purchaseamounts, past purchase values, shipping addresses, purchase frequencies,and the like activities. The personal data field 810 can correspond todata related to the associated user's location, social network,employment status, and the like information. The tracking data field 812can correspond to data, in addition to the data provided in data fields802-810, related to tracking activities of the user. Tracking data canbe used to support retargeting services. To protect private, sensitiveuser data, such information is either not collected or is protected bydata security technology. The call to action identification data field814 may correspond to data indicative of one or more call to actions towhich the user has subscribed. For example, the data field 814 may beindicative of a program name (e.g., “ACOMPANY Text Message Alerts”) anda text message frequency or limit for the corresponding user. It will beappreciated that, in alternative embodiments, the data field 814 may beindicative of more or less terms of condition-type information.

Modules, Components and Logic

Certain embodiments are described herein as including logic or a numberof components, modules, or mechanisms. Modules may constitute eithersoftware modules (e.g., code embodied (1) on a non-transitorymachine-readable medium or (2) in a transmission signal) orhardware-implemented modules. A hardware-implemented module is tangibleunit capable of performing certain operations and may be configured orarranged in a certain manner. In example embodiments, one or morecomputer systems (e.g., a standalone, client or server computer system)or one or more processors may be configured by software (e.g., anapplication or application portion) as a hardware-implemented modulethat operates to perform certain operations as described herein.

In various embodiments, a hardware-implemented module may be implementedmechanically or electronically. For example, a hardware-implementedmodule may comprise dedicated circuitry or logic that is permanentlyconfigured (e.g., as a special-purpose processor, such as a fieldprogrammable gate array (FPGA) or an application-specific integratedcircuit (ASIC)) to perform certain operations. A hardware-implementedmodule may also comprise programmable logic or circuitry (e.g., asencompassed within a general-purpose processor or other programmableprocessor) that is temporarily configured by software to perform certainoperations. It will be appreciated that the decision to implement ahardware-implemented module mechanically, in dedicated and permanentlyconfigured circuitry, or in temporarily configured circuitry (e.g.,configured by software) may be driven by cost and time considerations.

Accordingly, the term “hardware-implemented module” should be understoodto encompass a tangible entity, be that an entity that is physicallyconstructed, permanently configured (e.g., hardwired) or temporarily ortransitorily configured (e.g., programmed) to operate in a certainmanner and/or to perform certain operations described herein.Considering embodiments in which hardware-implemented modules aretemporarily configured (e.g., programmed), each of thehardware-implemented modules need not be configured or instantiated atany one instance in time. For example, where the hardware-implementedmodules comprise a general-purpose processor configured using software,the general-purpose processor may be configured as respective differenthardware-implemented modules at different times. Software mayaccordingly configure a processor, for example, to constitute aparticular hardware-implemented module at one instance of time and toconstitute a different hardware-implemented module at a differentinstance of time.

Hardware-implemented modules can provide information to, and receiveinformation from, other hardware-implemented modules. Accordingly, thedescribed hardware-implemented modules may be regarded as beingcommunicatively coupled. Where multiple of such hardware-implementedmodules exist contemporaneously, communications may be achieved throughsignal transmission (e.g., over appropriate circuits and buses) thatconnect the hardware-implemented modules. In embodiments in whichmultiple hardware-implemented modules are configured or instantiated atdifferent times, communications between such hardware-implementedmodules may be achieved, for example, through the storage and retrievalof information in memory structures to which the multiplehardware-implemented modules have access. For example, onehardware-implemented module may perform an operation, and store theoutput of that operation in a memory device to which it iscommunicatively coupled. A further hardware-implemented module may then,at a later time, access the memory device to retrieve and process thestored output. Hardware-implemented modules may also initiatecommunications with input or output devices, and can operate on aresource (e.g., a collection of information).

The various operations of example methods described herein may beperformed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implemented modulesthat operate to perform one or more operations or functions. The modulesreferred to herein may, in some example embodiments, compriseprocessor-implemented modules.

Similarly, the methods described herein may be at least partiallyprocessor-implemented. For example, at least some of the operations of amethod may be performed by one or processors or processor-implementedmodules. The performance of certain of the operations may be distributedamong the one or more processors, not only residing within a singlemachine, but deployed across a number of machines. In some exampleembodiments, the processor or processors may be located in a singlelocation (e.g., within a home environment, an office environment or as aserver farm), while in other embodiments the processors may bedistributed across a number of locations.

The one or more processors may also operate to support performance ofthe relevant operations in a “cloud computing” environment or as a“software as a service” (SaaS). For example, at least some of theoperations may be performed by a group of computers (as examples ofmachines including processors), these operations being accessible via anetwork (e.g., the Internet) and via one or more appropriate interfaces(e.g., Application Program Interfaces (APIs).)

Electronic Apparatus and System

Example embodiments may be implemented in digital electronic circuitry,or in computer hardware, firmware, software, or in combinations of them.Example embodiments may be implemented using a computer program product,e.g., a computer program tangibly embodied in an information carrier,e.g., in a machine-readable medium for execution by, or to control theoperation of, data processing apparatus, e.g., a programmable processor,a computer, or multiple computers.

A computer program can be written in any form of programming language,including compiled or interpreted languages, and it can be deployed inany form, including as a stand-alone program or as a module, subroutine,or other unit suitable for use in a computing environment. A computerprogram can be deployed to be executed on one computer or on multiplecomputers at one site or distributed across multiple sites andinterconnected by a communication network.

In example embodiments, operations may be performed by one or moreprogrammable processors executing a computer program to performfunctions by operating on input data and generating output. Methodoperations can also be performed by, and apparatus of exampleembodiments may be implemented as, special purpose logic circuitry,e.g., a field programmable gate array (FPGA) or an application-specificintegrated circuit (ASIC).

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other. Inembodiments deploying a programmable computing system, it will beappreciated that that both hardware and software architectures requireconsideration. Specifically, it will be appreciated that the choice ofwhether to implement certain functionality in permanently configuredhardware (e.g., an ASIC), in temporarily configured hardware (e.g., acombination of software and a programmable processor), or a combinationof permanently and temporarily configured hardware may be a designchoice. Below are set out hardware (e.g., machine) and softwarearchitectures that may be deployed, in various example embodiments.

Example Machine Architecture and Machine-Readable

FIG. 16 is a block diagram of machine in the example form of a computersystem 1600 within which instructions, for causing the machine toperform any one or more of the methodologies discussed herein, may beexecuted. In alternative embodiments, the machine operates as astandalone device or may be connected (e.g., networked) to othermachines. In a networked deployment, the machine may operate in thecapacity of a server or a client machine in server-client networkenvironment, or as a peer machine in a peer-to-peer (or distributed)network environment. The machine may be a personal computer (PC), atablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), acellular telephone, a web appliance, a network router, switch or bridge,or any machine capable of executing instructions (sequential orotherwise) that specify actions to be taken by that machine. Further,while only a single machine is illustrated, the term “machine” shallalso be taken to include any collection of machines that individually orjointly execute a set (or multiple sets) of instructions to perform anyone or more of the methodologies discussed herein.

The example computer system 1600 includes a processor 1602 (e.g., acentral processing unit (CPU), a graphics processing unit (GPU) orboth), a main memory 1604 and a static memory 1606, which communicatewith each other via a bus 1608. The computer system 1600 may furtherinclude a video display unit 1610 (e.g., a liquid crystal display (LCD)or a cathode ray tube (CRT)). The computer system 1600 also includes analphanumeric input device 1612 (e.g., a keyboard or a touch-sensitivedisplay screen), a user interface (UI) navigation device 1614 (e.g., amouse), a disk drive unit 1616, a signal generation device 1618 (e.g., aspeaker) and a network interface device 1620.

Machine-Readable Medium

The disk drive unit 1616 includes a machine-readable medium 1622 onwhich is stored one or more sets of instructions and data structures(e.g., software) 1624 embodying or utilized by any one or more of themethodologies or functions described herein. The instructions 1624 mayalso reside, completely or at least partially, within the main memory1604 and/or within the processor 1602 during execution thereof by thecomputer system 1600, the main memory 1604 and the processor 1602 alsoconstituting machine-readable media.

While the machine-readable medium 1622 is shown in an example embodimentto be a single medium, the term “machine-readable medium” may include asingle medium or multiple media (e.g., a centralized or distributeddatabase, and/or associated caches and servers) that store the one ormore instructions or data structures. The term “machine-readable medium”shall also be taken to include any non-transitory, tangible medium thatis capable of storing, encoding or carrying instructions for executionby the machine and that cause the machine to perform any one or more ofthe methodologies of the present invention, or that is capable ofstoring, encoding or carrying data structures utilized by or associatedwith such instructions. The term “machine-readable medium” shallaccordingly be taken to include, but not be limited to, solid-statememories, and optical and magnetic media. Specific examples ofmachine-readable media include non-volatile memory, including by way ofexample semiconductor memory devices, e.g., Erasable ProgrammableRead-Only Memory (EPROM), Electrically Erasable Programmable Read-OnlyMemory (EEPROM), and flash memory devices; magnetic disks such asinternal hard disks and removable disks; magneto-optical disks: andCD-ROM and DVD-ROM disks.

Transmission Medium

The instructions 1624 may further be transmitted or received over acommunications network 1626 using a transmission medium. Theinstructions 1624 may be transmitted using the network interface device1620 and any one of a number of well-known transfer protocols (e.g.,HTTP). Examples of communication networks include a local area network(“LAN”), a wide area network (“WAN”), the Internet, mobile telephonenetworks, Plain Old Telephone (POTS) networks, and wireless datanetworks (e.g., WiFi and WiMax networks). The term “transmission medium”shall be taken to include any intangible medium that is capable ofstoring, encoding or carrying instructions for execution by the machine,and includes digital or analog communications signals or otherintangible media to facilitate communication of such software.

Although an embodiment has been described with reference to specificexample embodiments, it will be evident that various modifications andchanges may be made to these embodiments without departing from thebroader spirit and scope of the invention. Accordingly, thespecification and drawings are to be regarded in an illustrative ratherthan a restrictive sense. The accompanying drawings that form a parthereof, show by way of illustration, and not of limitation, specificembodiments in which the subject matter may be practiced. Theembodiments illustrated are described in sufficient detail to enablethose skilled in the art to practice the teachings disclosed herein.Other embodiments may be utilized and derived therefrom, such thatstructural and logical substitutions and changes may be made withoutdeparting from the scope of this disclosure. This Detailed Description,therefore, is not to be taken in a limiting sense, and the scope ofvarious embodiments is defined only by the appended claims, along withthe full range of equivalents to which such claims are entitled.

Such embodiments of the inventive subject matter may be referred toherein, individually and/or collectively, by the term “invention” merelyfor convenience and without intending to voluntarily limit the scope ofthis application to any single invention or inventive concept if morethan one is in fact disclosed. Thus, although specific embodiments havebeen illustrated and described herein, it should be appreciated that anyarrangement calculated to achieve the same purpose may be substitutedfor the specific embodiments shown. This disclosure is intended to coverany and all adaptations or variations of various embodiments.Combinations of the above embodiments, and other embodiments notspecifically described herein, will be apparent to those of skill in theart upon reviewing the above description.

1. A method comprising: receiving an alert enrollment request based on auser selection from a mobile device of a user, the mobile devicecorresponding to a communication endpoint identifier; generating a userinterface element that corresponds to a confirmation of an option toinitiate a communication channel; in response to receiving an indicationof the confirmation, initiating the communication channel via the mobiledevice; and transmitting an invitation of a survey communication throughthe communication channel, the survey communication including anidentity verification request associated with a selected phrase to berepeated by the user.
 2. The method of claim 1, further comprising: uponidentifying an opt-in record associated with the communication endpointidentifier, transmitting a voice message through the communicationchannel, the voice message including a confirmation of a subscription toan alert service; identifying a user input in response to theconfirmation; and based on the user input, updating the opt-in recordassociated with the communication endpoint identifier.
 3. The method ofclaim 2, wherein the user input includes a verbal response received fromthe user via the mobile device.
 4. The method of claim 2, wherein theuser input includes a nonverbal response based on a user interactionwith a keypad on the mobile device.
 5. The method of claim 2, furthercomprising: determining that the user input matches a response in apre-determined list of responses; generating an alert based on the userinput, the alert corresponding to a text message, and causing display ofthe text message on the mobile device.
 6. The method of claim 1, furthercomprising: upon failure to identify an opt-in record associated withthe communication endpoint identifier, transmitting a voice messagethrough the communication channel, the voice message including a firstconfirmation of a subscription to an alert service and a secondconfirmation of the communication endpoint identifier to receive alertsgenerated by the alert service; identifying user inputs in response tothe first confirmation and the second confirmation; and based on theuser inputs, generating the opt-in record associated with thecommunication endpoint identifier.
 7. The method of claim 1,transmitting the invitation of the survey communication through thecommunication channel, further comprising: communicating an offer of areward to the user for staying on the communication channel to respondto one or more questions included in the survey communication; andreceiving the survey communication based on an acceptance of the offer.8. The method of claim 1, wherein the communication channel is a voicecall service via a telephony network.
 9. The method of claim 1, whereinthe communication endpoint identifier is a telephone number of the user.10. A system comprising: one or more hardware processors; and at leastone non-transitory computer-readable medium for storing instructionsthat, when executed by the one or more hardware processors, cause theone or more hardware processors to perform operations comprising:receiving an alert enrollment request based on a user selection from amobile device of a user, the mobile device corresponding to acommunication endpoint identifier; generating a user interface elementthat corresponds to a confirmation of an option to initiate acommunication channel; in response to receiving an indication of theconfirmation, initiating the communication channel via the mobiledevice; and transmitting an invitation of a survey communication throughthe communication channel, the survey communication including anidentity verification request associated with a selected phrase to berepeated by the user.
 11. The system of claim 10, wherein the operationsfurther comprise: upon identifying an opt-in record associated with thecommunication endpoint identifier, transmitting a voice message throughthe communication channel, the voice message including a confirmation ofa subscription to an alert service; identifying a user input in responseto the confirmation; and based on the user input, updating the opt-inrecord associated with the communication endpoint identifier.
 12. Thesystem of claim 11, wherein the user input includes a verbal responsereceived from the user via the mobile device.
 13. The system of claim11, wherein the user input includes a nonverbal response based on a userinteraction with a keypad on the mobile device.
 14. The system of claim11, wherein the operations further comprise: determining that the userinput matches a response in a pre-determined list of responses;generating an alert based on the user input, the alert corresponding toa text message, and causing display of the text message on the mobiledevice.
 15. The system of claim 10, wherein the operations furthercomprise: upon failure to identify an opt-in record associated with thecommunication endpoint identifier, transmitting a voice message throughthe communication channel, the voice message including a firstconfirmation of a subscription to an alert service and a secondconfirmation of the communication endpoint identifier to receive alertsgenerated by the alert service; identifying user inputs in response tothe first confirmation and the second confirmation; and based on theuser inputs, generating the opt-in record associated with thecommunication endpoint identifier.
 16. The system of claim 10, whereinthe operations of transmitting the invitation of the surveycommunication through the communication channel, further comprise:communicating an offer of a reward to the user for staying on thecommunication channel to respond to one or more questions included inthe survey communication; and receiving the survey communication basedon an acceptance of the offer.
 17. The system of claim 10, wherein thecommunication channel is a voice call service via a telephony network.18. The system of claim 10, wherein the communication endpointidentifier is a telephone number of the user.
 19. A non-transitorycomputer-readable medium for storing instructions that, when executed byone or more hardware processors, cause the one or more hardwareprocessors to perform operations comprising: receiving an alertenrollment request based on a user selection from a mobile device of auser, the mobile device corresponding to a communication endpointidentifier; generating a user interface element that corresponds to aconfirmation of an option to initiate a communication channel; inresponse to receiving an indication of the confirmation, initiating thecommunication channel via the mobile device; and transmitting aninvitation of a survey communication through the communication channel,the survey communication including an identity verification requestassociated with a selected phrase to be repeated by the user.
 20. Thenon-transitory computer-readable medium of claim 19, wherein theoperations further comprise: upon identifying an opt-in recordassociated with the communication endpoint identifier, transmitting avoice message through the communication channel, the voice messageincluding a confirmation of a subscription to an alert service;identifying a user input in response to the confirmation; and based onthe user input, updating the opt-in record associated with thecommunication endpoint identifier.